package com.category.douyijia.controller;

import java.util.ArrayList;
import java.util.List;

import com.category.douyijia.model.Area;
import com.category.douyijia.model.Type;
import com.category.douyijia.services.AreaService;
import com.category.douyijia.services.TypeService;
import com.jfinal.core.Controller;
import com.jfinal.core.NotAction;
import com.jfinal.core.Path;

/**
 * 创建类目控制器
 * 可以设置所有类目
 * 它可以将那些类目更好的显现出来
 * @author jiangmengyang
 *@version v1.0
 *访问页面路径：douyijia.category.com+/type+"/"+action
 */
@Path("/type")
public class TypeController extends Controller {
	 /**
	  * 创建类目在服务文件中的dao 的工具
	  * 这个工具可以利用typeService里面的，
	  * 增删改查的功能
	  */
		Type type = TypeService.typeDao;
	    /**
	     * 创建一个非action的方法，
	     * 用于查询类目里的信息
	     * @return
	     * 返回所有类目的信息
	     */
	@SuppressWarnings({"unchecked","rawtypes"})
	@NotAction
	    public List<Type> typeAll() {
			return (ArrayList)type.findAll();
	    }
	/**
	  * 创建一个保存页面模板的方法，
	  * 用于保存页面静态模板
	  */
	    
	 @NotAction
	 private void keepModel() {
		 /*
		  * 创建一个保存多参数的模板，
		  * 在不指定数据类型文件时，
		  * 默认为string的类型
		  */
		 keepPara("typeId","typeName");
	 }
	 /**
	  * 创建一个注册java的服务页面
	  * 使用服务器提供的模板生成页面
	  * 主要用于往页面里添加数据
	  */
	 public void  addtion(){
		 //设置保存数据模板
		 keepModel();
		 //设置网页的模板
		 render("type_addtion.jsp");
	 }
	 /**
	  *创建一个非action得方法
	  *查找是私有的，在页面内进行的
	  * @param id
	  * 通过id查找地区表
	  * @return
	  * 返回一个地区对象
	  */
	 @NotAction
	   private Type find_by_type_id(String typeId) {
	 		/*
	 		 * 如果typeId不为空结果返回一个类目对象，
	 		 * 查找类目表里的所有列
	 		 * 如果typeId为空，
	 		 * 则返回值为空
	 		 */
		   if(typeId!=null && !(typeId.equals(""))) {
			   //this.type等于上面建立的实体类的对象
				   return (Type) this.type.find(
						   "select "
								   + "type_id,type_name "
					 				+ "from Type "
					 				+ "where type_id"
					 				+ " =?", typeId);	 
		   }else {
			   return null;
		   }
	   }
	 /**
	 	 * 如果type不为空则跳转另一个页面
	 	 * 如果type为空则返回原来的页面
	 	 * 进行页面跳转则用public
	 	 * @param type
	 	 * 原来的实体类的一个对象
	 	 * @param typeId
	 	 * 通过typeId去查找类目表
	 	 * 再进行更改
	 	 */
	 	public void update_by_type_id( Type type,  String typeId){
	 		if(typeId!=null && !(typeId.equals(""))){
	 			/*
	 			 * oldType=this.type=type
	 			 * 创建一个原来的地址
	 			 */
	 			Type oldType = find_by_type_id(typeId);
	 			this.type._setAttrs(type).update();
	 			render("type_success.jsp");
	 		}else {
				render("type_index.jsp");
			}
	 	}
	 /**
	  * 如果类目表里的信息没有错误的话，
	  * 开发者科管理员可以访问并修改页面信息
	  */
	 public void index() {
		 render("type_index.jsp");
	 }
	    
}
